home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / srtsltn / data1.cab / Target / Include / sortsoli.bas next >
Encoding:
BASIC Source File  |  1998-08-05  |  16.9 KB  |  255 lines

  1. Attribute VB_Name = "Module2"
  2. Option Explicit
  3.  
  4. ' This file contains Visual Basic declarations for the Sort Solution Library
  5. ' Copyright ⌐ 1997,98 Mario M. Westphal
  6. ' All Rights reserved
  7. '
  8. ' Version 1.4.0
  9. '
  10.  
  11. ' ##############################################################################
  12. ' The error codes returned from the various Sort Solution APIs
  13. ' You can use these codes to retrieve appropriate error messages from the
  14. ' "SSIGetErrorMessage" API
  15. ' ##############################################################################
  16.  
  17. Public Const SOSOERR_SUCCESS = 0                            ' Successful execution
  18. Public Const SOSOERR_FIRST = 20000                          ' First error code
  19. Public Const SOSOERR_UNKNOWN = (SOSOERR_FIRST + 1)          ' Unknown error
  20.  
  21. ' Source file
  22.  
  23. Public Const SOSOERR_OPENSOURCE = (SOSOERR_FIRST + 2)       ' Error opening the source file
  24. Public Const SOSOERR_READSOURCE = (SOSOERR_FIRST + 3)       ' Error reading from the source file
  25. Public Const SOSOERR_SEEKSOURCE = (SOSOERR_FIRST + 4)       ' Error seeking in the source file
  26. Public Const SOSOERR_CLOSESOURCE = (SOSOERR_FIRST + 5)      ' Error closing the source
  27. Public Const SOSOERR_PARSESOURCE = (SOSOERR_FIRST + 6)      ' Error while parsing the structure of the source file
  28. Public Const SOSOERR_INVALIDFORMAT = (SOSOERR_FIRST + 7)    ' Invalid file format
  29.  
  30. Public Const SOSOERR_RUNTIME = (SOSOERR_FIRST + 8)          ' Runtime error
  31. Public Const SOSOERR_MEMORY = (SOSOERR_FIRST + 9)           ' Invalid file format
  32.  
  33. Public Const SOSOERR_EXPLICITOFFSET = (SOSOERR_FIRST + 10)  ' Offset wrong
  34. Public Const SOSOERR_EXPLICITLEN = (SOSOERR_FIRST + 11)     ' Len to > 5
  35. Public Const SOSOERR_EXPLICITRECLEN = (SOSOERR_FIRST + 12)  ' Record to short
  36.  
  37. Public Const SOSOERR_ABORTED = (SOSOERR_FIRST + 18)         ' User abort
  38. Public Const SOSOERR_NORECORDS = (SOSOERR_FIRST + 19)       ' No records found in input file
  39.  
  40. Public Const SOSOERR_OPENDEST = (SOSOERR_FIRST + 20)        ' Error opening the destination file
  41. Public Const SOSOERR_WRITEDEST = (SOSOERR_FIRST + 21)       ' Error writing to the destination file
  42. Public Const SOSOERR_SEEKDEST = (SOSOERR_FIRST + 22)        ' Error seeking in the destination file
  43. Public Const SOSOERR_CLOSEDEST = (SOSOERR_FIRST + 23)       ' Error closing the destination file
  44. Public Const SOSOERR_DESTNOSPACE = (SOSOERR_FIRST + 24)     ' Not enough space on the destination drive
  45.  
  46. Public Const SOSOERR_OPENMERGE = (SOSOERR_FIRST + 30)        ' Error opening a merge file
  47. Public Const SOSOERR_READMERGE = (SOSOERR_FIRST + 31)        ' Error reading from a merge file
  48. Public Const SOSOERR_WRITEMERGE = (SOSOERR_FIRST + 32)       ' Error writing to a merge file
  49. Public Const SOSOERR_SEEKMERGE = (SOSOERR_FIRST + 33)        ' Error seeking in a merge file
  50. Public Const SOSOERR_CLOSEMERGE = (SOSOERR_FIRST + 34)       ' Error closing a merge file
  51. Public Const SOSOERR_GETMERGEFILENAME = (SOSOERR_FIRST + 35) ' Error retrieving a merge file name
  52. Public Const SOSOERR_NOMERGESPACE = (SOSOERR_FIRST + 36)     ' All merge drives are full
  53. Public Const SOSOERR_NOMERGEDRIVESAVAIL    = (SOSOERR_FIRST + 37)    ' No merge drives are available
  54. Public Const SOSOERR_CHECK_SOURCENOTFOUND = (SOSOERR_FIRST + 100)    ' Source file not found
  55. Public Const SOSOERR_CHECK_CREATEDEST = (SOSOERR_FIRST + 101)        ' Error creating the destination file
  56. Public Const SOSOERR_CHECK_INVALIDMERGEDRIVE = (SOSOERR_FIRST + 102) ' Invalid merge drive specified
  57.  
  58. Public Const SOSOERR_OPENLOG = (SOSOERR_FIRST + 120)                 ' Error opening the logfile
  59. Public Const SOSOERR_WRITELOG = (SOSOERR_FIRST + 121)                ' Error writing the logfile
  60.  
  61. Public Const SOSOERR_NOKEYSDEFINED = (SOSOERR_FIRST + 200)           ' No keys defined
  62. Public Const SOSOERR_ERRORCREATEINSTANCE = (SOSOERR_FIRST + 201)     ' Error creating a sort instance
  63. Public Const SOSOERR_ERRORINVALIDERRORCODE = (SOSOERR_FIRST + 202)   ' Invalid error code for SSIGetErrorMessage
  64.  
  65. Public Const SOSOERR_KEYDLL_NOTFOUND = (SOSOERR_FIRST + 300)         ' User DLL was not found
  66. Public Const SOSOERR_KEYDLL_COMPARE_NOTFOUND = (SOSOERR_FIRST + 301) ' The specified compare function could not be found in the DLL
  67. Public Const SOSOERR_KEYDLL_NO_NAME = (SOSOERR_FIRST + 302)          ' The key definition does not contain a valid DLL name
  68. Public Const SOSOERR_KEYDLL_NO_COMPARENAME = (SOSOERR_FIRST + 303)   ' The key definition does not contain a valid compare function name
  69.  
  70. Public Const SOSOERR_INVALIDMEMORYORPOINTER = (SOSOERR_FIRST + 999)  ' Invalid memory pointer given to one of the API's
  71.  
  72. ' Invalid parameters
  73.  
  74. Public Const SOSOERR_PARAM_INVALIDHANDLE = (SOSOERR_FIRST + 1000)    ' Invalid handle given
  75. Public Const SOSOERR_PARAM_INVALIDPARAM = (SOSOERR_FIRST + 1001)     ' Invalid parameter
  76. Public Const SOSOERR_PARAM_INPUTFILENAME = (SOSOERR_FIRST + 1002)    ' Invalid source filename
  77. Public Const SOSOERR_PARAM_OUTPUTFILENAME = (SOSOERR_FIRST + 1003)   ' Invalid destination file name
  78. Public Const SOSOERR_PARAM_MERGEDRIVES = (SOSOERR_FIRST + 1004)      ' Invalid merge drive specification
  79. Public Const SOSOERR_PARAM_FILETYPE = (SOSOERR_FIRST + 1005)         ' Unknown file type
  80. Public Const SOSOERR_PARAM_RECLEN = (SOSOERR_FIRST + 1006)           ' Invalid reclen
  81. Public Const SOSOERR_PARAM_DELIMETERS = (SOSOERR_FIRST + 1007)       ' Invalid delimeter specification
  82. Public Const SOSOERR_PARAM_FIELDS = (SOSOERR_FIRST + 1008)           ' Fields argument required in key specification
  83. Public Const SOSOERR_PARAM_EXPLICITLEN = (SOSOERR_FIRST + 1009)      ' Error in SORTSOL_FTYPE_EXPLICIT filetype
  84. Public Const SOSOERR_PARAM_INVALIDKEYTYPE = (SOSOERR_FIRST + 1010)   ' Unknown key type
  85. Public Const SOSOERR_PARAM_DATEADJUST = (SOSOERR_FIRST + 1011)       ' Error in date adjust specifier
  86. Public Const SOSOERR_PARAM_KEYPOS = (SOSOERR_FIRST + 1012)           ' Invalid key position
  87. Public Const SOSOERR_PARAM_KEYOFFSET = (SOSOERR_FIRST + 1013)        ' Invalid key offset
  88. Public Const SOSOERR_PARAM_WRONGFORMAT_FOR_KEYTYPE = (SOSOERR_FIRST + 1014) ' Wrong file format for key type
  89. Public Const SOSOERR_PARAM_HEADERSIZE = (SOSOERR_FIRST + 1015)              ' Invalid header size
  90. Public Const SOSOERR_PARAM_FILESIZEMISMATCH = (SOSOERR_FIRST + 1016)        ' File site must match record length = (SORTSOL_FTYPE_FIXED)
  91. Public Const SOSOERR_PARAM_TOMANYKEYS = (SOSOERR_FIRST + 1017)       ' To many keys specified
  92. Public Const SOSOERR_PARAM_INVALIDMASK = (SOSOERR_FIRST + 1018)      ' Invalid date/time mask
  93. Public Const SOSOERR_PARAM_INVALIDSEQUENCE = (SOSOERR_FIRST + 1019)  ' Invalid sequence
  94. Public Const SOSOERR_PARAM_INVALIDKEYLEN = (SOSOERR_FIRST + 1020)    ' Invalid key len
  95. Public Const SOSOERR_PARAM_DRIVESPACE = (SOSOERR_FIRST + 1021)       ' Error in CheckDriveSpace statement
  96. Public Const SOSOERR_VERSIONINFO = (SOSOERR_FIRST + 1030)            ' Error retrieving the version information
  97.  
  98. ' Command file related errors = (CreateFromFile= () API)
  99.  
  100. Public Const SOSOERR_CMDFILENOTFOUND = (SOSOERR_FIRST + 2000)        ' Command file not found
  101. Public Const SOSOERR_INVALIDCMDFILENAME = (SOSOERR_FIRST + 2001)     ' Invalid command file name
  102. Public Const SOSOERR_OPENCMDFILE = (SOSOERR_FIRST + 2002)            ' Error opening the command file
  103. Public Const SOSOERR_UNKNOWNKEYWORD = (SOSOERR_FIRST + 2003)         ' Unknown keyword found
  104. Public Const SOSOERR_MISSINGOP = (SOSOERR_FIRST + 2004)              ' Missing "= ("
  105. Public Const SOSOERR_MISSINGCP = (SOSOERR_FIRST + 2005)              ' Missing ")"
  106. Public Const SOSOERR_NODRIVES = (SOSOERR_FIRST + 2006)               ' Argument missing in DRIVES statement
  107. Public Const SOSOERR_INVALIDDRIVES = (SOSOERR_FIRST + 2007)          ' Invalid DRIVES statement
  108. Public Const SOSOERR_DRIVESPARE = (SOSOERR_FIRST + 2008)             ' Invalid DRIVESPARE statement
  109. Public Const SOSOERR_THREADS = (SOSOERR_FIRST + 2009)                ' Invalid THREADS statement
  110. Public Const SOSOERR_CACHES = (SOSOERR_FIRST + 2010)                 ' Invalid CACHES statement
  111. Public Const SOSOERR_SORTMEM = (SOSOERR_FIRST + 2011)                ' Invalid SORTMEM statement
  112. Public Const SOSOERR_MERGEMEM = (SOSOERR_FIRST + 2012)               ' Invalid MERGEMEM statement
  113. Public Const SOSOERR_RANGE = (SOSOERR_FIRST + 2013)                  ' Invalid RANGE statement
  114. Public Const SOSOERR_FILTER_ARGS = (SOSOERR_FIRST + 2014)            ' Invalid arguments in FILTER statement
  115. Public Const SOSOERR_FILTER_TYPE = (SOSOERR_FIRST + 2015)            ' Invalid type in FILTER
  116. Public Const SOSOERR_FILTER_FTREMOVE_ARGS = (SOSOERR_FIRST + 2016)   ' Invalid remove sepcifier in FILTER statement
  117. Public Const SOSOERR_INPUTFILE = (SOSOERR_FIRST + 2017)              ' Invalid INPUTFILE statement
  118. Public Const SOSOERR_INPUTFILEDELETE = (SOSOERR_FIRST + 2018)        ' Invalid delete specifier for INPUTFILE statement
  119. Public Const SOSOERR_OUTPUTFILE = (SOSOERR_FIRST + 2019)             ' Invalid OUTPUTFILE statement
  120. Public Const SOSOERR_LOGFILE = (SOSOERR_FIRST + 2020)                ' Invalid LOGFILE statement
  121. Public Const SOSOERR_COMPRESS = (SOSOERR_FIRST + 2021)               ' Invalid COMPRESS statement
  122. Public Const SOSOERR_HEADER = (SOSOERR_FIRST + 2022)                 ' Invalid HEADER statement
  123. Public Const SOSOERR_HEADERLEN = (SOSOERR_FIRST + 2023)              ' Invalid "length" specifier in HEADER
  124. Public Const SOSOERR_HEADER_INBYTES = (SOSOERR_FIRST + 2024)         ' Invalid "in bytes" specifier in HEADER
  125. Public Const SOSOERR_HEADER_KEEP = (SOSOERR_FIRST + 2025)            ' Invalid "keep" specifier in HEADER
  126. Public Const SOSOERR_FILETYPE_ARGS = (SOSOERR_FIRST + 2026)          ' Invalid arguments for FILETYPE
  127. Public Const SOSOERR_FILETYPE_UNKNOWN = (SOSOERR_FIRST + 2027)       ' Unknown FILETYPE
  128. Public Const SOSOERR_FILETYPE_INVALIDRECLEN = (SOSOERR_FIRST + 2028) ' Invalid record length specifier in FILETYPE
  129. Public Const SOSOERR_FILETYPE_SEPARATOR = (SOSOERR_FIRST + 2029)     ' Invalid separator
  130. Public Const SOSOERR_FILETYPE_DELIMETER = (SOSOERR_FIRST + 2030)     ' Invalid delimeter
  131. Public Const SOSOERR_FILETYPE_TOMANYFIELDS = (SOSOERR_FIRST + 2031)  ' SORTSOL_FTYPE_EXPLICIT: To many fields specified
  132. Public Const SOSOERR_FILETYPE_EXINVALIDOFS = (SOSOERR_FIRST + 2032)  ' SORTSOL_FTYPE_EXPLICIT: Invalid offset
  133. Public Const SOSOERR_FILETYPE_EXINVALIDLEN = (SOSOERR_FIRST + 2033)  ' SORTSOL_FTYPE_EXPLICIT: Invalid length
  134. Public Const SOSOERR_FILETYPE_EXINVALIDBINSPEC = (SOSOERR_FIRST + 2034) ' SORTSOL_FTYPE_EXPLICIT) Invalid "binary" specifier
  135. Public Const SOSOERR_KEY_ARGS = (SOSOERR_FIRST + 2035)               ' Invalid arguments found in KEY
  136. Public Const SOSOERR_KEY_INVALIDTYPE = (SOSOERR_FIRST + 2036)        ' Invalid KEY type
  137. Public Const SOSOERR_KEY_INVALIDSORTORDER = (SOSOERR_FIRST + 2037)   ' Unknown "sort order" specifier
  138. Public Const SOSOERR_KEY_INVALIDPOS = (SOSOERR_FIRST + 2038)         ' Invalid "position" specifier
  139. Public Const SOSOERR_KEY_INVALIDOFS = (SOSOERR_FIRST + 2039)         ' Invalid "offset" specifier
  140. Public Const SOSOERR_KEY_INVALIDLEN = (SOSOERR_FIRST + 2040)         ' Invalid "length" specifier
  141. Public Const SOSOERR_KEY_INVALIDDECPL = (SOSOERR_FIRST + 2041)       ' Invalid "decimal places" specifier
  142. Public Const SOSOERR_KEY_MASKTOLONG = (SOSOERR_FIRST + 2042)         ' Date/time mask too long
  143. Public Const SOSOERR_KEY_MASKTOSHORT = (SOSOERR_FIRST + 2043)        ' Date/time mask too shoort
  144. Public Const SOSOERR_KEY_SEQUENCETOSHORT = (SOSOERR_FIRST + 2044)    ' Sequence less than 256 byte
  145. Public Const SOSOERR_KEY_PRIMLANG = (SOSOERR_FIRST + 2045)           ' Unknown primary language
  146. Public Const SOSOERR_KEY_SUBLANG = (SOSOERR_FIRST + 2046)            ' Unknown sub-language
  147. Public Const SOSOERR_KEY_DATEADJUST = (SOSOERR_FIRST + 2047)         ' Invalid "date adjust" specifier
  148. Public Const SOSOERR_PRIORITY = (SOSOERR_FIRST + 2048)               ' Invalid priority
  149. Public Const SOSOERR_OUTPUTFILEAPPEND = (SOSOERR_FIRST + 2049)       ' TRUE to append to an existing output file
  150. Public Const SOSOERR_KEYDLL_DATAOUTOFRANGE = (SOSOERR_FIRST + 2050)  ' "Data" to long in User key
  151. Public Const SOSOERR_PARAM_TRAILER_WRONGTYPE = (SOSOERR_FIRST + 2070)' Wrong type in TRAILER statement
  152. Public Const SOSOERR_PARAM_TRAILER_KEEP    = (SOSOERR_FIRST + 2071)     ' Invalid "keep" specifier in TRAILER
  153. Public Const SOSOERR_PARAM_TRAILER_EXPR_TOO_LONG = (SOSOERR_FIRST + 2072)' Expression in TRAILER exceeds SOSOMAX_TRAILEREXPR_LEN
  154. Public Const SOSOERR_PARAM_TRAILER_LEN = (SOSOERR_FIRST + 2073)      ' Length in TRAILER invalid
  155. Public Const SOSOERR_TRAILER_LEN = (SOSOERR_FIRST + 2080)            ' TRAILER size bigger than input file size
  156. Public Const SOSOERR_TRAILER_SAVETEMP = (SOSOERR_FIRST + 2081)       ' Error while saving the TRAILER to a temporary file
  157. Public Const SOSOERR_TRAILER_READTEMP = (SOSOERR_FIRST + 2082)       ' Error while reading the TRAILER from a temporary file
  158.  
  159.  
  160. ' ##############################################################################
  161. ' Types and Structures
  162. ' ##############################################################################
  163.  
  164. ' The command state structure is used to transfer information
  165. ' to and from the Sort Solution Library
  166. Public Type SORTSOL_CMDFILESTATUS
  167.     Size As Long
  168.     LineNo As Long
  169.     ErrLine As String * 256
  170.     Override As Long
  171.     InputFileName As String * 260
  172.     DeleteInput As Long
  173.     OutputFileName As String * 260
  174.     AppendOutput As Long
  175.     LogFileName As String * 260
  176.     AppendLog As Long
  177.     PriorityClass As Long
  178. End Type
  179.  
  180.  
  181. ' These values are returned in the "PriorityClass" member
  182. ' of the SSICmdState structure
  183. Public Const SOSO_NORMAL_PRIORITY_CLASS = 32
  184. Public Const SOSO_IDLE_PRIORITY_CLASS = 64
  185. Public Const SOSO_HIGH_PRIORITY_CLASS = 128
  186.  
  187. ' This structure takes informtion about the sort and is used
  188. ' in conjunction with "SSIGetStats"
  189. Public Type SORTSOL_STATS
  190.     Size As Long
  191.     BytesSortedLo As Long
  192.     BytesSortedHi As Long
  193.     SortTime As Long
  194.     MergeTime As Long
  195.     AvgBlockLoadTime As Long
  196.     AvgBlockSortTime As Long
  197.     AvgBlockMergeTime As Long
  198.     RecordsProcessedLo As Long
  199.     RecordsProcessedHi As Long
  200.     RecordsFilteredLo As Long
  201.     RecordsFilteredHi As Long
  202.     NumberOfRuns As Long
  203.     CachePerRun As Long
  204. End Type
  205.  
  206. ' ##############################################################################
  207. ' Exported APIs
  208. ' ##############################################################################
  209.  
  210. Public Declare Function SSICreateFromFile Lib "sortsol.dll" (ByRef handle As Long, ByVal Filename As String, ByRef cmdstate As SORTSOL_CMDFILESTATUS) As Long
  211. Public Declare Function SSICreateFromCommandString Lib "sortsol.dll" (ByRef handle As Long, ByVal command As String, ByRef cmdstate As SORTSOL_CMDFILESTATUS) As Long
  212. Public Declare Function SSISort Lib "sortsol.dll" (ByVal handle As Long) As Long
  213. Public Declare Function SSIFree Lib "sortsol.dll" (ByVal handle As Long) As Long
  214. Public Declare Function SSIGetStats Lib "sortsol.dll" (ByVal handle As Long, ByRef stats As SORTSOL_STATS) As Long
  215. Public Declare Function SSIGetErrorMessage Lib "sortsol.dll" (ByVal ErrorCode As Long, ByVal Text As String, ByRef Size As Long) As Long
  216. Public Declare Function SSIGetVersion Lib "sortsol.dll" (ByRef MS As Long, ByRef LS As Long) As Long
  217.  
  218.  
  219. ' ##############################################################################
  220. ' The callback API (VB 5.x only)
  221. ' ##############################################################################
  222. ' --------------------------------------------------------------------------------
  223. ' The callback procedure (VB 5.x only)
  224. ' Use a callback function like this in your application:
  225. '
  226. '     Public Function MySortCallback(ByVal Code As Long, ByVal StatusData As Long, ByVal Extra As Long) As Long
  227. '
  228. ' and use this function as an argument to "SSIRegisterCallback":
  229. '
  230. '     Dim result As Long
  231. '     result = SSIRegisterCallback(handle, AddressOf MySortCallback, 0)
  232. '
  233. '     Please note: If you want to update user interface elements, e.g. progress
  234. '                  bars, don't forget to include a DoEvent call in your callback
  235. '                  function
  236. '
  237. ' Please see the documentation for callbacks in VB Books Online for more information
  238. ' regarding callbacks in Visual Basic
  239.  
  240. Public Declare Function SSIRegisterCallback Lib "sortsol.dll" (ByVal handle As Long, ByVal Callback As Long, ByVal Extra As Long) As Long
  241.  
  242. ' These codes are returned in the argument "StatusData" to the callback
  243. ' function in your application
  244. Public Const SORTSOL_NOTIFY_SORTPERCENTAGE = 1    ' The sort percentage is updated
  245. Public Const SORTSOL_NOTIFY_MERGEPERCENTAGE = 2   ' The merge percentage is updated
  246. Public Const SORTSOL_NOTIFY_BEGINSORT = 3         ' The sort begins
  247.     Public Const SORTSOL_STATUS_ONEPHASESORT = 1  ' In-memory sort
  248.     Public Const SORTSOL_STATUS_MERGESORT = 2     ' Mergesort
  249. Public Const SORTSOL_NOTIFY_FINISHSORT = 4        ' The sort is finished
  250. Public Const SORTSOL_NOTIFY_BEGINMERGE = 5        ' The merge begins
  251. Public Const SORTSOL_NOTIFY_FINISHMERGE = 6       ' The merge is finished
  252. Public Const SORTSOL_NOTIFY_FINISHED = 20         ' The complete sort is finished
  253.  
  254.  
  255.